﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using Tools.Domain.Common.Repositories.Contracts;
using Tools.Domain.Specifications;
using Webshop20.Domain.Shared.Products.Core;

namespace Webshop20.Domain.Catalog.Repositories.Implementation
{
    public class ProductRepository : IRepository<Product>
    {
        #region IRepository<Product> Members

        public void Add(Product instance)
        {
            throw new NotImplementedException();
        }

        public void Save(Product instance)
        {
            throw new System.NotImplementedException();
        }

        public void Update(Product instance)
        {
            throw new NotImplementedException();
        }

        public void SaveOrUpdate(Product instance)
        {
            throw new System.NotImplementedException();
        }

        public void SaveOrUpdateCopy(Product instance)
        {
            throw new System.NotImplementedException();
        }

        public void Delete(Product instance)
        {
            throw new NotImplementedException();
        }

        public Product FindById(object id)
        {
            throw new NotImplementedException();
        }

        public IEnumerable<Product> FindAll()
        {
            throw new NotImplementedException();
        }

        public IQueryable<Product> Find(Expression<Func<Product, bool>> searchTerm)
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<Product> Find(Func<Product, bool> searchTerm)
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<Product> FindBySpecification(ISpecification<Product> specification)
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<Product> FindByQuery(IQuery<Product> query)
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<R> FindInRole<R>(Expression<Func<Product, bool>> searchTerm)
        {
            throw new System.NotImplementedException();
        }

        public R FindByIdInRole<R>(object id)
        {
            throw new System.NotImplementedException();
        }

        public IEnumerable<R> FindAllInRole<R>()
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<R> FindBySpecificationInRole<R>(ISpecification<Product> specification)
        {
            throw new System.NotImplementedException();
        }

        public IFutureValue<Product> FutureFindById(object id)
        {
            throw new System.NotImplementedException();
        }

        public IFutureQueryOf<Product> FutureFindAll()
        {
            throw new System.NotImplementedException();
        }

        public IFutureQueryOf<Product> FutureFind(Expression<Func<Product, bool>> searchTerm)
        {
            throw new System.NotImplementedException();
        }

        public IFutureQueryOf<Product> FutureFindBySpecification(ISpecification<Product> specification)
        {
            throw new System.NotImplementedException();
        }

        #endregion
    }
}